# 使用 while 和 for…in 两个循环分别输出四种九九乘法表效果（共计 8 个）。


# 使用 for…in 循环输出九九乘法表

'''
    1.把乘法表左上角考虑成(1,1)坐标点，每个乘法表达式等于 row*col；
    2.按照图例，发现输出规律按照列的数值排列，行的值从左至右为1-9；
    3.创建第一层循环，让列的值从1-9循环；创建第二层循环，让行的值从1到等于列的值循环输出；
    4.为格式化输出，使用占位。
'''
for col in range(1,10):
    for row in range(1,col+1):
        print('{}*{}={:<4}'.format(row,col,row*col), end=' ')
    print('')
print('='*80)

'''
    1.按照图例，发现输出规律按照列的数值从9-1排列，行的值从左至右为1-9；
    2.创建第一层循环，让列的值从9-1循环；创建第二层循环，让行的值从1到等于列的值循环输出；
    3.为格式化输出，使用占位。
'''
for col in range(9,0,-1):
    for row in range(1,col+1):
        print('{}*{}={:<4}'.format(row,col,row*col), end=' ')
    print('')
print('='*80)

'''
    1.按照图例，发现输出规律按照列的数值排列，行的值从左至右为9-1；
    2.创建第一层循环，让列的值从1-9循环；创建第二层循环，让行的值从9-1循环；
    3.创建判断条件，当行的值大于列的值时，输出与表达式等长的空格；
    4.当行的值小于等于列的值时，即期待的输出结果，让程序格式化输出，使用占位。
'''
for col in range(1,10):
    for row in range(9,0,-1):
        if row>col:
            print(end='         ')
        else:
            print('{}*{}={:<4}'.format(row,col,row*col), end=' ')
    print('')
print('='*80)

'''
    1.按照图例，发现输出规律按照列的数值9-1排列，行的值从左至右为9-1；
    2.创建第一层循环，让列的值从9-1循环；创建第二层循环，让行的值从9-1循环；
    3.创建判断条件，当行的值小于等于列的值时，输出与表达式等长的空格；
    4.当行的值大于列的值时，即期待的输出结果，让程序格式化输出，使用占位。
'''
for col in range(9,0,-1):
    for row in range(9,0,-1):
        if row<=col:
            print('{}*{}={:<4}'.format(row, col, row * col), end=' ')
        else:
            print(end='         ')
    print('')
print('='*80)


# 使用 while 循环输出九九乘法表

'''
    1.把乘法表左上角考虑成(1,1)坐标点，每个乘法表达式等于 row*col；
    2.按照图例，发现输出规律按照列的数值排列，行的值从左至右为1-9；设置行和列的初始值均为1；
    3.创建第一层while循环，让列从递增循环，每次循环结束列的值增加1；
    4.创建第二层while循环，让行的值从1到等于列的值循环并输出；每次列递增后，行的值返回到1；
    5.为格式化输出，使用占位。
'''
row = 1
col = 1
while (col<=9):
    row=1
    while (row<=col):
        print('{}*{}={:<4}'.format(row,col,row*col), end=' ')
        row+=1
    col+=1
    print('')
print('='*80)

'''
    1.按照图例，发现输出规律按照列的数值9-1排列，行的值从左至右为1-9；设置行的初始值为1，列的初始值为9；
    3.创建第一层while循环，让列从递减循环，每次循环结束列的值减少1；
    4.创建第二层while循环，让行的值从1到等于列的值循环并输出；每次列递减后，行的值返回到1；
    5.为格式化输出，使用占位。
'''
row = 1
col = 9
while (col>=1):
    row=1
    while (row<=col):
        print('{}*{}={:<4}'.format(row,col,row*col), end=' ')
        row+=1
    col-=1
    print('')
print('='*80)

'''
    1.按照图例，发现输出规律按照列的数值排列，行的值从左至右为9-1；设置行的初始值为9，列的初始值为1；
    2.创建第一层while循环，让列从递增循环，每次循环结束列的值增加1；
    3.创建第二层while循环，让行的值从9-1循环并输出；每次列递增后，行的值返回到9；
    4.创建判断条件，当行的值大于列的值时，输出与表达式等长的空格；
    5.当行的值小于等于列的值时，即期待的输出结果，让程序格式化输出，使用占位。
'''
row = 9
col = 1
while (col<=9):
    row=9
    while(row>=1):
        if row>col:
            print(end='         ')
        else:
            print('{}*{}={:<4}'.format(row, col, row * col), end=' ')
        row-=1
    col+=1
    print('')
print('='*80)

'''
    1.按照图例，发现输出规律按照列的数值从9-1排列，行的值从左至右为9-1；设置行和列的初始值均为9；
    2.创建第一层while循环，让列从递减循环，每次循环结束列的值减少1；
    3.创建第二层while循环，让行的值从9-1循环并输出；每次列递减后，行的值返回到9；
    4.创建判断条件，当行的值大于列的值时，输出与表达式等长的空格；
    5.当行的值小于等于列的值时，即期待的输出结果，让程序格式化输出，使用占位。
'''
row = 9
col = 9
while (col>=1):
    row=9
    while (row>=1):
        if (row>col):
            print(end='         ')
        else:
            print('{}*{}={:<4}'.format(row, col, row * col), end=' ')
        row-=1
    col-=1
    print('')
print('='*80)